import pandas as pd
import requests
import json
import matplotlib
# matplotlib.use('TkAgg')  # 或 'Qt5Agg'
matplotlib.use('Agg')  # 必须在 import pyplot 前设置！
def api_to_dataframe(url, params=None, json_path=None):
    """
    获取HTTP API数据并转换为DataFrame
    Args:
        url: API地址
        params: 请求参数
        json_path: JSON数据中包含数组的路径（如 'data.result'）
    """
    try:
        # 发送请求
        response = requests.get(url, params=params)
        response.raise_for_status()  # 检查请求是否成功

        # 解析JSON
        data = response.json()

        # 如果指定了JSON路径，提取嵌套数据
        if json_path:
            keys = json_path.split('.')
            for key in keys:
                data = data[key]

        # 转换为DataFrame
        df = pd.DataFrame(data)
        return df

    except requests.exceptions.RequestException as e:
        print(f"请求错误: {e}")
        return pd.DataFrame()
    except json.JSONDecodeError as e:
        print(f"JSON解析错误: {e}")
        return pd.DataFrame()